
Smack3.4.1文档翻译:使用Smack进行调试,Debugging with Smack
Smack带有两个内置 的调试控制台, 可用于跟踪客户端与服务器之间的所有 XML通信内容 。 一个是 轻量 级调试器 ,它是 smack.jar 中的一部分, 另一个是 增强 型调试器 ,它是 smackx-debug.jar 中的一部分。
可用两种方式来启用调试模式:
1. 在创建新连接的代码 之前 ,加入以下代码:
Connection.DEBUG_ENABLED = true;
2. 将Java 系统属性 smack.debugEnabled 设置为真(true)。 该系统属性可通过命令行设置,例如:
java -Dsmack.debugEnabled=true SomeApp
如果妳想要显式禁用程序中的调试模式,包括禁用掉从命令行启用调试模式的可能性的话,那么,在创建新连接的代码之前,加入以下代码:
Connection.DEBUG_ENABLED = false;
Smack使用以下逻辑来决定使用哪个调试控制台:
1. 它会首先尝试使用在Java 系统属性 smack.debuggerClass 中指定的调试器类。如果 妳需要开发出妳自己的调试器的话,那么,实现 SmackDebugger 接口,然后 在命令行设置 好这个系统属性,例如:
java -Dsmack.debuggerClass=my.company.com.MyDebugger SomeApp
2. 如果步骤1失败 了,则, Smack 会尝试使用增强型调试器。 smackx-debug.jar 文件 中包含有增强型调试器。因此 ,妳需要将这个 jar文件放置 到类路径(classpath)中。对于目标机器 上存储空间有限的情况, 妳可以 只部署 smack.jar ,那样就无法使用增强 型调试器了。
3.如果以上两个步骤都失败了,那么最后选项就是使用轻量级调试器了。如果妳要限制内存占用量的话,使用轻量级调试器就是一个好主意。
当调试模式被启用的情况下,会出现一个调试窗口,其中包含着标签页,分别针对着每个新创建的连接。窗口中会包含以下信息:
•.连接信息标签页 -- 每个标签页中显示的是针对一个连接的调试信息。
•.Smack信息标签页 -- 显示关于Smack的信息 (例如,Smack版本号,已安装的组件,等等 )。
连接标签页中包含以下信息:
•.所有数据包 -- 显示Smack 解析出来的那些被发送及接收到的数据包的信息。
•. 被发送的原始数据包 -- 由Smack 生成并且发送到服务器的原始XML数据。
•. 被接收的原始数据包 -- 由服务器发送到客户端的原始XML数据。
•.临时消息 -- 可在这里发送任意类型的临时数据包。
•.信息 – 显示连接状态及统计信息。
在启用了调试模式的情况下,每当新创建一个连接时,会出现一个调试窗口。该窗口中会包含以下信息:
•.客户端数据(红色文字) -- 由Smack 生成并且发送到服务器的原始XML数据。
•.服务器数据(蓝色文字) -- 由服务器发送到客户端的原始XML数据。
•.解析之后的数据包(绿色文字) -- 显示由服务器发送过来并且被Smack 解析的XML数据包。
在任意面板上单击右键,会弹出一个菜单,然后可选择将内容复制到系统剪贴板,或者清空该面板中的内容。
周芷若
HxLauncher: Launch Android applications by voice commands